package com.example.demo.demos.mp;

import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;

import java.util.Collections;

public class CodeGenerator {
    public static void main(String[] args) {
        String url = "jdbc:mysql://localhost:3306/wangysdb?useSSL=false&serverTimezone=UTC";
        String username = "root";
        String password = "root";
        String outputDir = "F:/工作空间/demo/src/main/java"; // 生成路径
        String basePackage = "com.example.demo"; // 基础包名

        FastAutoGenerator.create(url, username, password)
                .globalConfig(builder -> {
                    builder.author("wangys") // 作者
                            .outputDir(outputDir) // 输出目录
                            .disableOpenDir(); // 生成后不打开文件夹
                })
                .packageConfig(builder -> {
                    builder.parent(basePackage) // 父包名
                            .moduleName("system") // 模块名（可选）
                            .pathInfo(Collections.singletonMap(OutputFile.xml, "F:/工作空间/demo/src/main/resources/mapper")); // XML 路径
                })
                .strategyConfig(builder -> {
                    builder.addInclude("user") // 要生成的表名
                            .addTablePrefix("t_", "sys_") // 过滤表前缀
                            .entityBuilder()
                            .enableLombok() // 使用 Lombok
                            .enableFileOverride() // 覆盖已生成文件
                            .controllerBuilder()
                            .enableRestStyle() // 生成 @RestController
                            .mapperBuilder()
                            .enableBaseResultMap()
                            .enableBaseColumnList();
                })
                .templateEngine(new FreemarkerTemplateEngine()) // 使用 Freemarker 引擎
                .execute();
    }
}

